package com.ss.plugins.sql.utils;

import com.ss.plugins.sql.core.CustomSql;
import com.ss.plugins.sql.core.SummerQuery;
import com.ss.utlis.StringUtil;
import java.util.Map;

/**
 * @author xia17
 * @date 2019/9/25 11:49
 */
public class SqlTemplateUtil {

    /**
     * 替换基础查询语句
     * @param sql sql 模板
     * @param customSql 自定义语句
     * @param query 查询条件
     * @return 可以执行的sql
     */
    public static String base(String sql ,CustomSql customSql, SummerQuery query){
        Map<String, Object> map = customSql.toTemplateParamMap();
        if (query == null){
            map.put("where","");
        }else {
            map.put("where",query.getSql());
        }
        //替换sql语句中的动态参数
        return StringUtil.replaceTemplateString(sql,map);
    }

    /**
     * 替换基础查询语句
     * @param sql sql 模板
     * @param customSql 自定义语句
     * @param query 查询条件
     * @param page 页数 从0开始
     * @param size 每页大小
     * @return 可以执行的sql
     */
    public static String count(String sql,CustomSql customSql,SummerQuery query,int page ,int size){
        Map<String, Object> map = customSql.toTemplateParamMap();
        if (query == null){
            map.put("where","");
        }else {
            map.put("where",query.getSql());
        }
        map.put("start",page*size);
        map.put("size",size);
        return StringUtil.replaceTemplateString(sql,map);
    }


}
